#ifndef CERDITO_H
#define	CERDITO_H

#include "Utilidad.h"
#include "Catapulta.h"
#include "Canasta.h"
#include "Jugador.h"
#include "Excepcion.h"

#define OFF_SET_POS 30

using namespace TP;
using namespace TP::Juego;

namespace TP { namespace Juego { namespace Arena { namespace Utilidades {

class Cerdito : public Utilidad {

public:
    
    Cerdito();

    ~Cerdito();
    
    /* Devuelve un puntero a una copia de la utilidad, creado con new */
    virtual Utilidad* clonar();
    
    virtual IColisionado* colisionar (IColisionado* pColisionado);    
    
    Jugador* setPropietario (Jugador* pPropietario)  throw (Excepcion&);
    
    Jugador* getPropietario ();
    
    virtual Posicion* setPosicion (Posicion* pPosicion);
    
    Catapulta* getCatapulta() throw (Excepcion&);
    
    Canasta* getCanasta() throw (Excepcion&);
    
    virtual TiXmlElement* aElementoXML ();
    
    virtual void deElementoXML (TiXmlElement* pElemento);      
    
    virtual double getRadio();
    
    virtual int getPuntosDestruccion();
    
private:
    Jugador* _propietario;
    Catapulta* _catapulta;
    Canasta* _canasta;
};
}}}}

#endif	/* CERDITO_H */